package com.tbit.uqbike.service.business;

import com.tbit.common.enums.FeeTypeEnum;
import com.tbit.uqbike.object.pojo.HolidayFeeDto;
import com.tbit.uqbike.object.pojo.ModifyFeeTypeDto;
import com.tbit.uqbike.object.pojo.TimeFeeVo;
import com.tbit.uqbike.object.value.TimeFee;

import java.util.List;

/**
 * @Author: chen
 * @Description:
 * @Date: 创建于 15:02 2023/11/2
 */
public interface TimeFeeService {

  /**
   * 新增
   * @param timeFee
   */
  void add(TimeFeeVo timeFee);

  /**
   * 删除
   * @param feeId
   */
  void delete(Integer feeId);

  /**
   * 通过区域id获取
   * @param accountId
   * @return
   */
  List<TimeFee> getByAccountId(Integer accountId,Integer type,Integer feeId);

  /**
   * 删除
   * @param accountId 区域id
   * @param type 类型
   * @param feeId 其他计费主键id
   */
  void deleteByType(Integer accountId,Integer type,Integer feeId);

  /**
   * 假日计费规则保存/覆盖
   * @param holidayFeeDto
   */
  void addHolidayFee(HolidayFeeDto holidayFeeDto);

  /**
   * 查询假日计费规则
   * @param accountId
   */
  List<TimeFee> queryHoliday(Integer accountId);

  /**
   * 查询区域当前的计费类型
   * @param accountId
   * @return
   */
  FeeTypeEnum queryFeeType(Integer accountId);

  /**
   * 变更计费规则开关
   * @param dto
   */
  void modifyFeeType(ModifyFeeTypeDto dto);
}
